package com.swanclouds.model.managers.builder.BMC;

import com.swanclouds.common.Buildable;
import com.swanclouds.model.managers.Oem.BMC.UpdateKvmService;

/**
 * @author 李文强
 * description
 */

public interface UpdateKvmServiceBuilder extends Buildable.Builder<UpdateKvmServiceBuilder, UpdateKvmService>{

    /**
     * 单端口状态
     * 当SingleportStatus为true时，EncryptionEnabled为false
     * @param singlePortStatus true：不加密模式访问 false：加密模式访问
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder SingleportStatus(Boolean singlePortStatus);

    /**
     * 是否加密
     * @param encryptionEnabled true加密 false不加密
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder EncryptionEnabled(Boolean encryptionEnabled);

    /**
     * 键盘语言
     * @param keyboardLayout “AD”：自动检测
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder KeyboardLayout(String keyboardLayout);

    /**
     *KVM重连次数
     * 仅当ReconnectEnabled为true时有效
     * @param retryCount 数字 表示重连次数
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder RetryCount(Integer retryCount);

    /**
     * KVM重连间隔，单位为秒
     * 仅当ReconnectEnabled为true时有效
     * @param retryInterval 数字 重连的间隔时间 单位秒
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder RetryInterval(Integer retryInterval);

    /**
     * 服务器监控OFF功能状态
     * @param monitorHostOffEnabled true 监控 false 不监控
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder MonitorHostOffEnabled(Boolean monitorHostOffEnabled);

    /**
     * 当KVM启动时自动OFF服务器监控
     * @param autoOffHostMonitor true不监控 false监控
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder AutoOffHostMonitor(Boolean autoOffHostMonitor);

    /**
     * KVM窗口自适应纵横比
     * @param aspectRatio 窗口的纵横比
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder AspectRatio(Integer aspectRatio);

    /**
     * 鼠标模式
     * @param mouseMode absolute：绝对位置模式（windows） relative：相对位置模式（linux） other：其它模式
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder MouseMode(String mouseMode);

    /**
     * KVM会话类型
     * @param activatedSessionsType “Shared”：共享 “Private”：独占
     * @return UpdateKvmServiceBuilder
     */
    UpdateKvmServiceBuilder  ActivatedSessionsType (String activatedSessionsType);
}
